#ifndef _UI_FACTORY_H_
#define _UI_FACTORY_H_

#include <canvas.h>
#include <button.h>
#include <window.h>
#include <entry.h>
#include <textFeild.h>
#include <label.h>
#include <radioSelector.h>
#include <multipleSelector.h>

namespace lgb_gtk
{

  class UIFactory
  {
    static UIFactory *instance;
    UIFactory();
    
  public:
    ~UIFactory();
    
    static UIFactory *GetInstance();
    
    Window *CreateWindow(WindowStyle style);
    Canvas *CreateCanvas(CanvasStyle style);
    Button *CreateButton(ButtonStyle style);
    Entry *CreateEntry(EntryStyle style);
    TextFeild *CreateTextFeild(TextFeildStyle style);
    Label *CreateLabel(LabelStyle style);
    RadioSelector *CreateRadioSelector(RadioSelectorStyle style);
    MultipleSelector *CreateMultipleSelector(MultipleSelectorStyle style);
  };

}

#endif
